home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / workbench / directoryopus4 / dopus4_src / program / dopus.h < prev    next >
C/C++ Source or Header  |  2000-03-11  |  8KB  |  302 lines

  1. /*
  2.  
  3. Directory Opus 4
  4. Original GPL release version 4.12
  5. Copyright 1993-2000 Jonathan Potter
  6.  
  7. This program is free software; you can redistribute it and/or
  8. modify it under the terms of the GNU General Public License
  9. as published by the Free Software Foundation; either version 2
  10. of the License, or (at your option) any later version.
  11.  
  12. This program is distributed in the hope that it will be useful,
  13. but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15. GNU General Public License for more details.
  16.  
  17. You should have received a copy of the GNU General Public License
  18. along with this program; if not, write to the Free Software
  19. Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  20.  
  21. All users of Directory Opus 4 (including versions distributed
  22. under the GPL) are entitled to upgrade to the latest version of
  23. Directory Opus version 5 at a reduced price. Please see
  24. http://www.gpsoft.com.au for more information.
  25.  
  26. The release of Directory Opus 4 under the GPL in NO WAY affects
  27. the existing commercial status of Directory Opus 5.
  28.  
  29. */
  30.  
  31. #ifndef DOPUS_INCLUDE
  32. #define DOPUS_INCLUDE
  33.  
  34. //#include <fctype.h>
  35. #include <string.h>
  36. #include <stdlib.h>
  37. #include <stdarg.h>
  38. #include <exec/types.h>
  39. #include <exec/memory.h>
  40. #include <exec/execbase.h>
  41. #include <dos/dos.h>
  42. #include <dos/dosextens.h>
  43. #include <dos/exall.h>
  44. #include <intuition/intuitionbase.h>
  45. #include <intuition/sghooks.h>
  46. #include <graphics/gfxbase.h>
  47. #include <graphics/gfxmacros.h>
  48. #include <libraries/commodities.h>
  49. #include <workbench/workbench.h>
  50. #include <workbench/startup.h>
  51. #include <devices/audio.h>
  52. #include <devices/input.h>
  53. #include <devices/keyboard.h>
  54. #include <devices/trackdisk.h>
  55. #include <devices/printer.h>
  56. #include <devices/prtbase.h>
  57. #include <devices/conunit.h>
  58. #include <hardware/intbits.h>
  59. #include <datatypes/datatypesclass.h>
  60. #include <proto/all.h>
  61.  
  62. #include <proto/dopus.h>
  63. #include <proto/accounts.h>
  64. #include "pools.h"
  65.  
  66. //#define lsprintf sprintf
  67.  
  68. #include "arbiter.h"
  69. #include "dopusstructures.h"
  70. #include "dopusflags.h"
  71. #include "dopusconfigflags.h"
  72. #include "dopusiff.h"
  73. #include "dopusfunctions.h"
  74. #include "dopusdata.h"
  75. #include "dopusstrings.h"
  76. #include "screendata.h"
  77. #include "dopusreqdata.h"
  78. #include "launchexternal.h"
  79. #include "view.h"
  80.  
  81. #include "dopusproto.h"
  82.  
  83. #define CONFIG_STRUCTURE_SIZE 9200
  84.  
  85. #define DOPUSLIB_VERSION 21
  86.  
  87. #define DOPUS_VERSION  4
  88. #define DOPUS_REV      "12"
  89.  
  90. #define DOPUS_REVISION DOPUS_REV
  91.  
  92. #define OSVER_34 0
  93. #define OSVER_37 1
  94. #define OSVER_38 2
  95. #define OSVER_39 3
  96. #define OSVER_40 4
  97.  
  98. #define ASYNC_READ_SIZE  16384
  99. #define ASYNC_WRITE_SIZE 16384
  100. #define COPY_BUF_SIZE    16384 //2048
  101.  
  102. #define CURSOR_LEFT 0x4f
  103. #define CURSOR_RIGHT 0x4e
  104. #define CURSOR_UP 0x4c
  105. #define CURSOR_DOWN 0x4d
  106.  
  107. #define APPWINID     1
  108.  
  109. #define TASK_QUIT             999
  110. #define TASK_HOTKEY_WAKEUP     33
  111. #define PROGRESS_OPEN         100
  112. #define PROGRESS_UPDATE       101
  113. #define PROGRESS_CLOSE        102
  114. #define HOTKEY_HOTKEYCHANGE   120
  115. #define HOTKEY_NEWHOTKEYS     121
  116. #define HOTKEY_KILLHOTKEYS    122
  117. #define CLOCK_ACTIVE          130
  118.  
  119. #define VALID_QUALIFIERS (IEQUALIFIER_LCOMMAND|IEQUALIFIER_RCOMMAND|\
  120.                          IEQUALIFIER_CONTROL|IEQUALIFIER_LSHIFT|\
  121.                          IEQUALIFIER_RSHIFT|IEQUALIFIER_LALT|IEQUALIFIER_RALT)
  122.  
  123. #define IEQUALIFIER_ANYSHIFT (IEQUALIFIER_LSHIFT|IEQUALIFIER_RSHIFT)
  124.  
  125. #define ICON_IDCMP (IDCMP_CLOSEWINDOW|IDCMP_MOUSEBUTTONS|IDCMP_DISKINSERTED|\
  126.                                         IDCMP_DISKREMOVED|IDCMP_GADGETUP|IDCMP_GADGETDOWN|\
  127.                                         IDCMP_ACTIVEWINDOW|IDCMP_INACTIVEWINDOW|IDCMP_MOUSEMOVE|\
  128.                                         IDCMP_MENUPICK)
  129.  
  130. #define IFFERR_NOTILBM  -2
  131. #define IFFERR_BADIFF   -3
  132. #define IFFERR_NOMEMORY -4
  133. #define IFFERR_BADMODE  -5
  134. #define IFFERR_NOSCREEN -6
  135.  
  136. #define SOURCE 0
  137.  
  138. #define ENTRY_FILE              -1
  139. #define ENTRY_DEVICE             0
  140. #define ENTRY_DIRECTORY          1
  141. #define ENTRY_CUSTOM           999
  142. #define CUSTOMENTRY_DIRTREE      1
  143. #define CUSTOMENTRY_BUFFERLIST   2
  144. #define CUSTOMENTRY_USER         3
  145.  
  146. #define CUSTENTRY_CANSELECT      0x00010000
  147.  
  148. #define USERENTRY_ERROR         -1
  149. #define USERENTRY_FUNCTION       0
  150. #define USERENTRY_DOUBLECLICK    1
  151. #define USERENTRY_CLICKMCLICK    2
  152.  
  153. #define ENTRYTYPE(t) ((t==ENTRY_CUSTOM)?ENTRY_CUSTOM:((t==0)?ENTRY_DEVICE:((t<0)?ENTRY_FILE:ENTRY_DIRECTORY)))
  154.  
  155. #define MAXDISPLAYLENGTH  256
  156.  
  157. #define isonlyword(c) (!c || c==10 || c==13 || isspace(c) || ispunct(c))
  158.  
  159. #define OLD_CONFIG_VERSION 9999
  160. #undef CONFIG_VERSION
  161. #define CONFIG_VERSION 10000
  162. #define CONFIG_MAGIC 0xFACE
  163.  
  164. #define MENUCOUNT 100
  165. #define GADCOUNT 84
  166. #define DRIVECOUNT 32
  167. #define NUMFONTS 16
  168. #define USEDRIVECOUNT 30
  169. #define FILETYPE_FUNCNUM   16
  170.  
  171. #define SHIFTKEYS (IEQUALIFIER_LSHIFT|IEQUALIFIER_RSHIFT)
  172.  
  173. #define DRIVE1 200
  174. #define DRIVE2 201
  175. #define DRIVE3 202
  176. #define DRIVE4 203
  177. #define DRIVE5 204
  178. #define DRIVE6 205
  179.  
  180. #define ARROWS_INSIDE   0
  181. #define ARROWS_OUTSIDE  1
  182. #define ARROWS_EACHSIDE 2
  183.  
  184. #define ABSI(n) ((n<0)?-n:n)
  185.  
  186. #define CONFIG_GET_CONFIG 1
  187. #define CONFIG_HERES_CONFIG 2
  188. #define CONFIG_ALL_DONE 3
  189. #define CONFIG_NEW_HOTKEY 4
  190. #define CONFIG_HOTKEYS_CHANGE 5
  191.  
  192. #define PSTYLE_NORMAL  1
  193. #define PSTYLE_BOLD    2
  194. #define PSTYLE_ITALICS 3
  195. #define PSTYLE_ULINE   4
  196. #define PSTYLE_DSTRIKE 5
  197. #define PSTYLE_SHADOW  6
  198.  
  199. #define NLQ_OFF        0
  200. #define NLQ_ON         1
  201. #define NLQ_HEADEROFF  2
  202. #define NLQ_HEADERON   3
  203.  
  204. #define HEADER_OFF     0
  205. #define HEADER_TITLE   1
  206. #define HEADER_DATE    2
  207. #define HEADER_PAGE    4
  208.  
  209. #define PNLQ_ON  "\x1b[2\"z"
  210. #define PNLQ_OFF "\x1b[1\"z"
  211.  
  212. #define MODE_WORKBENCHUSE         1
  213. #define MODE_WORKBENCHCLONE       2
  214. #define MODE_PUBLICSCREEN         3
  215.  
  216. #define REQOB_END        0
  217. #define REQOB_BOOLEAN    1
  218. #define REQOB_STRING     2
  219. #define REQOB_CYCLE      3
  220. #define REQOB_CHECK      4
  221. #define REQOB_TEXT     512
  222.  
  223. #define REQOB_ISGADGET (511)
  224.  
  225. #define REQFLAG_STR_INT  1
  226. #define REQFLAG_NOBORDER 1
  227.  
  228. #define STATUS_HELP         1    /* Help mode is active */
  229. #define STATUS_IANSCRAP     2    /* Various things for Ian */
  230. #define STATUS_ISINBUTTONS  4    /* Is current iconified to buttons */
  231. #define STATUS_DONEREXX     8    /* Done the initial ARexx script */
  232. #define STATUS_BUSY         16   /* Busy */
  233. #define STATUS_AUDIOLED     32   /* AudioLed is off */
  234. #define STATUS_GLOBALFILE   64   /* File is a global one */
  235. #define STATUS_VERIFYFAIL   128  /* Verify requester was cancelled */
  236. #define STATUS_FROMHOTKEY   256  /* File is run from hotkey */
  237. #define STATUS_IANSCRAP2    512  /* More of Ian's crap :-) */
  238. #define STATUS_SQUAREPIXEL  1024 /* Screen has square pixels */
  239. #define STATUS_NEWLOOK      2048 /* New-look sliders */
  240.  
  241. extern struct DiskObject *icontable[4];
  242. extern char *comp_date,*comp_time;
  243.  
  244. #define MAXMENULENGTH 64
  245.  
  246. /* Envoy stuff */
  247. /*
  248. struct UserInfo
  249. {
  250.     UBYTE   ui_UserName[32];
  251.     UWORD   ui_UserID;
  252.     UWORD   ui_PrimaryGroupID;
  253.     ULONG   ui_Flags;
  254. };
  255.  
  256. struct GroupInfo
  257. {
  258.     UBYTE   gi_GroupName[32];
  259.     UWORD   gi_GroupID;
  260. };
  261.  
  262. struct UserInfo *AllocUserInfo( void );
  263. struct GroupInfo *AllocGroupInfo( void );
  264. void FreeUserInfo( struct UserInfo * );
  265. void FreeGroupInfo( struct GroupInfo * );
  266.  
  267. ULONG IDToUser( unsigned long userID, struct UserInfo *user );
  268. ULONG IDToGroup( unsigned long groupID, struct GroupInfo *group );
  269.  
  270. #pragma libcall AccountsBase AllocUserInfo 1e 00
  271. #pragma libcall AccountsBase AllocGroupInfo 24 00
  272. #pragma libcall AccountsBase FreeUserInfo 2a 801
  273. #pragma libcall AccountsBase FreeGroupInfo 30 801
  274.  
  275. #pragma libcall AccountsBase IDToUser 4e 8002
  276. #pragma libcall AccountsBase IDToGroup 54 8002
  277. */
  278.  
  279. #ifdef __SASC_60
  280.  
  281. extern __chip USHORT
  282.     pageflip_data1[5],
  283.     pageflip_data2[3],
  284.     null_pointer[6];
  285.  
  286. extern __chip char beepwave[16];
  287.  
  288. #else
  289.  
  290. extern USHORT
  291.     __chip pageflip_data1[5],
  292.     __chip pageflip_data2[3],
  293.     __chip null_pointer[6];
  294.  
  295. extern char __chip beepwave[16];
  296.  
  297. #endif
  298.  
  299. extern struct Image appicon_image;
  300.  
  301. #endif
  302.